// pages/popup/popup.js
import {HistoryHotApi,GoodsSearchApi,TipsListApi} from "../../request/api"
let timer = null;
Page({
  data: {
    // 用一个 blockShow 变量判断展示哪一个模块
    blockShow:1,
    // 搜索框默认文本
    defaultKeyword: "",
    // 历史记录列表
    historyKeywordList: [],
    // 热门搜索列表
    hotKeywordList: [],
    // 用来搜索的关键字
    keyword: "",
    // 搜索的商品列表
    goodsList: [],
    filterCategory: "",
    filterCategoryCurrentId: 0,
    // 当前页数
    page: 1,
    // 当前条数
    size: 20,
    // 排列顺序，desc表示价格由高到低，asc由低到高
    order: "desc",
    // 分类id，代表下拉菜单中的全部、居家等选项
    categoryId: 0,
    // 可以是id或price，price表示按照价格排序
    sort: "id",
    tipsList: []
  },

  chanBlockShow(e){
    this.setData({
      blockShow: e.detail.num,
      keyword: e.detail.keyword
    })
    // 调用发送请求的方法，把关键字带过去
    this.goodsSearchList();
  },
  async goodsSearchList(){
    // 专门用来发送 商品列表 的请求
    let res = await GoodsSearchApi({
      data:{
        keyword: this.data.keyword,
        page: this.data.page,
        size: this.data.size,
        order: this.data.order,
        categoryId: this.data.categoryId,
        sort: this.data.sort
      }
    });
    console.log(res);
    let {goodsList,filterCategory} = res.data
    // 分类处理
    let arr = filterCategory.map(item=>{
      return {text: item.name, value: item.id}
    })
    // 从filterCategory数组中过滤出 checked为true的这一项
   let currentId = filterCategory.filter(item=>item.checked)[0].id
    this.setData({
      goodsList,
      filterCategory: arr,
      filterCategoryCurrentId: currentId
    })
  },
  categoryChange(e){
    // console.log("cate: "+e.detail);
    this.setData({
     keyword: this.data.keyword,
     categoryId: e.detail,
     sort: "id"
    })
    this.goodsSearchList();
   },
  priceChange(e){
    this.setData({
    keyword: this.data.keyword,
    categoryId: 0,
    sort: "price",
    // 这个e.detail的值是 desc或者asc
    order: e.detail
  })
  this.goodsSearchList();
  },
  onChange(e){
    // 切换界面2
    this.setData({
      blockShow: 2,
    })
   // 定时器防抖：减少请求
    if(timer) {
      clearTimeout(timer)
    }
   timer = setTimeout(async ()=>{
    // console.log(e.detail);
    let res = await TipsListApi({
      data:{
        keyword: e.detail
      }
    })
    this.setData({
      tipsList: res.data
    })
   }, 500)
  },
  onSearch(e){
  this.setData({
    blockShow: 3,
    keyword: e.detail,
    categoryId: 0
  })
  this.goodsSearchList();
  },
  onCancel(){
    wx.navigateBack()
  },

  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad(options) {
    let res = await HistoryHotApi();
    let {defaultKeyword,historyKeywordList,hotKeywordList} = res.data;
    this.setData({
      defaultKeyword,
      historyKeywordList,
      hotKeywordList
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})